/*
* Copyright 2008  Rice University
* All Rights Reserved
* 
*       Created by Erion Plaku, Lydia Kavraki
*       Physical and Biological Computing Group
*       Department of Computer Science
*       Rice University
*/

/**
*@file GWorkspace3D.H
*@author Erion Plaku
*@brief Graphical workspace: render 3D workspace 
*/

#ifndef OOPSMP_GRAPHICS_GUTILS_GGEOMETRY_G_ARTICULATED_WORKSPACE_GWORKSPACE3D_H_
#define OOPSMP_GRAPHICS_GUTILS_GGEOMETRY_G_ARTICULATED_WORKSPACE_GWORKSPACE3D_H_

#include "OOPSMP/Graphics/GUtils/GGeometry/GWorkspace/GWorkspace.H"
#include "OOPSMP/Graphics/GUtils/GGeometry/GWorkspace/GArticulatedPart3D.H"
#include "OOPSMP/Utils/Geometry/Workspace/ArticulatedWorkspace3D.H"

namespace OOPSMP
{
	/**
	*@brief Macro for class, class pointer, and const class pointer declarations
	*/  
	ForwardClassDeclaration(GArticulatedWorkspace3D);

	/**
	*@brief Graphical workspace: render 3D workspace
	*/  
	class GArticulatedWorkspace3D : public GWorkspace
	{
	public:
	
		/**
		*@brief Initialize data elements to appropriate default values
		*/
		GArticulatedWorkspace3D(void) : GWorkspace()
		{
			m_gStaticPart = new GArticulatedPart3D();
			m_gMovingPart = new GArticulatedPart3D();
		}

		/**
		*@brief Free the memory allocated to different data elements
		*/
		virtual ~GArticulatedWorkspace3D(void)
		{
		}
	};
}

#endif








